package com.hca.training.zk.javabasic.Stringtest.Stringtest;

import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.StringTokenizer;

public class TestString {
    static String a1="abc";
    static String a2="abC";

     public static void main(String[] orgs)
     {

//     compare();//比较
//         compute();//计算
//         cutout();//区别
//         Interceptway();//截取方式
//         Splicingcharacter();//拼接String[]
//         Theoutputsequence();//StringBuilder或StringBuffer中的内容反序输出
         codingtypetransform();//指定字符串编码类型及转换
//         replace();
//         effect();//添加尾部，包含元素，是否符合正则表达，前缀是否是某字符串，大小写转换
        // arithmetic();
     }
     public static void arithmetic()
    {
        BigDecimal a=new BigDecimal("50");
        BigDecimal b=new BigDecimal("60");
        a=a.add(b);
        System.out.println("相加："+a);
        a = a.subtract(b);
        System.out.println("差    是   :  " + a);
        //乘法
        a= a.multiply(b);
        System.out.println("积    是   :  " + a);
        //除法
        a = a.divide(b);
        System.out.println("商    是   :  " + a);

    }
    /**
     * 1.比较
     */
    public static void compare()
    {
        if(a1==a2)
        {
          System.out.println("相等1");
        }
        if(a1.equals(a2))
        {
            System.out.println("相等2");
        }
    }
    /**
     * 2.计算
     **/
    public static  void compute()
    {
     String  a1="abc";
      System.out.println(a1+1+1);
      System.out.println(a1+(1+1));
        System.out.println(1+1+a1);
        System.out.println((1+1)+a1);

    }
    /**
     * 3.String和StringBuffer的字符串截取
     */
    public  static void cutout()
    {
        String a="123";
        StringBuffer b=new StringBuffer("123");
        System.out.println(a.substring(1));
        System.out.println(b.substring(1));//看写上去一样其实不同
    }
    /**
     * 第四题可以直接回答。
     *5.截取方式
     */
    public  static void Interceptway()
    {
        String a="abc:defg;ggg|uyu_drr";

        String[] a1=a.split(":");
        System.out.println("split按符号截取:"+a1[0]+"      "+a1[1]);

        String a2=a.substring(3);
        System.out.println("substring按位置截取："+a2);

        StringTokenizer b=new StringTokenizer(a,":;|_");
        System.out.println("StringTokenizer截取方式：");
        while (b.hasMoreElements()) {
            System.out.println(b.nextElement());
        }


    }
    /**
     * 6.拼接String[]
     * Splicing character（拼接字符）
     */
    public static void  Splicingcharacter()
    {
        String[] c=new String[3];
        String b="";
        for (int i=0;i<6;i++) {
            c[i] = "a"+i;
        }
        System.out.println(c.length);
        if (c.length > 0) {
            b = c[0];
            for (int i=1;i<3;i++)
            {
                b = b + "," + c[i];
            }
        }
        System.out.println(b);

    }
    /**
     * 第七题直接回答。Overloaded methods(重载方法)
     * 第八题直接回答。
     * 9.StringBuilder或StringBuffer中的内容反序输出
     * The output sequence（反序输出）
     */
    public static void Theoutputsequence()
    {
        StringBuffer a=new StringBuffer("123456");
//        a.reverse();
//        String a1="StringBuffer:";
//        for(int i=a.length()-1;i>=0;i--) {
//            a1+=a.charAt(i);
//            if (i==0)
//            {
//               a1+="    StringBuilder: ";
//            }
//        }
//        StringBuilder b=new StringBuilder("123456");
//        for(int i=b.length()-1;i>=0;i--) {
//            a1+=b.charAt(i);
//        }
        System.out.println( a.reverse());

    }
    /**
     * 第十题直接回答.
     * 11.指定字符串编码类型及转换
     *  coding type（编码类型）transform（转换）
     */
    public static void codingtypetransform()
    {
        String z3="张三";
        try{
        byte[] bytes= z3.getBytes("Utf-8");
        String b=new String(bytes,"utf-8");
        System.out.println(b);
        b=new String(bytes,"gb2312");
        System.out.println(b);
        b=new String(bytes,"gbk");
        System.out.println(b);
        }
        catch (UnsupportedEncodingException ex)
        {
            System.out.println(ex);
        }


    }
    /**
     * 12、	使用replace()和replaceAll()方法字符内容替换
     *replace（替换）
     * 第十三题直接写答案了
     */
    public static void replace()
    {
        String a="1231222111";

        System.out.println(a.indexOf("2")+1);//第一个位置
        System.out.println(a.lastIndexOf("2")+1);//最后一个位置


        String b= a.replace("1","a");
        System.out.println(a);
        System.out.println(b);
        String c=a.replaceAll("\\d","b");
        System.out.println(c);
    }
    /**
     * 14.作用以及返回值
     * effect (作用)
     */
    public static void  effect()
    {
        //        a)	concat(String s)     //拼接字符串到尾部
         String a="12312312";
        a= a.concat("666");
        System.out.println(a);
//        b)	contains(CharSequence s)     //判断对象是否含有某元素
        CharSequence b="s";
        Boolean c=a.contains(b);
        System.out.println(c);
        b="2";
        c=a.contains(b);
        System.out.println(c);
//        c)	matches(String s)            //判断是否符合相应的正则表达式
        c=a.matches("[0-9]");
        System.out.println(c);
//        d)	startsWith(String s)和endsWith(String s)//是否是指定前缀的字符
        c=a.startsWith("123");
        System.out.println(c);
//        e)	toLowerCase()和toUpperCase()     //大小写转换
        a="acfdd";
        b=a.toUpperCase();
        System.out.println(b);




    }

}
